EAE:自编码器 + BN + 最大熵 = 生成模型
©PaperWeekly 原创 · 作者|苏剑林
单位|追一科技
研究方向|NLP、神经网络
生成模型一直是笔者比较关注的主题,不管是 NLP 和 CV 的生成模型都是如此。
这篇文章里,我们介绍一个新颖的生成模型,来自论文 Batch norm with entropic regularization turns deterministic autoencoders into generative models [1],论文中称之为 EAE(Entropic AutoEncoder)。
它要做的事情给变分自编码器(VAE)基本一致,最终效果其实也差不多(略优),说它新颖并不是它生成效果有多好,而是思路上的新奇,颇有别致感。
自编码器vs生成模型
其 loss 一般为:
那么,生成模型又是什么情况呢?“生成”指的是随机生成,也就是说允许我们能随机构建一幅图像来,对于自编码器的解码器 D(z),并不是每一个 z 解码出来的 D(z) 都是一幅有意义的图像,因此普通的自编码器并不能视为生成模型。
如果我们能够事先知道所有的x编码出来的 z=E(x) 所构成的分布,并且这个分布是一个易于采样分布,那么就可以实现随机采样生成了。
正态分布与最大熵
我们知道,最大熵原理是一个相当普适的原理,它代表着我们对未知事件的最客观认知。最大熵原理的一个结论是:
在所有均值为 0、方差为 1 的分布中,标准正态分布的熵最大。
如果读者还不了解最大熵的相关内容,可以参考旧作《“熵”不起:从熵、最大熵原理到最大熵模型(二)》[2]。
上述结论告诉我们,如果我们能有某种手段保证隐变量的均值为 0 和方差为 1,那么我们只需要同时最大化隐变量的熵,就可以得到“隐变量服从标准正态分布”这个目的了,即:
均值方差约束与BN
先来解决第一个问题:如何达到——至少近似地达到——“隐变量的均值为 0、方差为 1 ”这个约束?因为只有满足这个约束的前提下,最大熵的分布才是标准正态的。解决这个问题的办法是我们熟悉的批归一化,也就是 BN(Batch Normalization)。
在 BN 的训练阶段,我们会直接对每个变量减去其 batch 内的均值并且除以 batch 内标准差,这保证了训练阶段每个 batch 的变量均值确实为 0,方差确实为 1。
然后,它会将每个 batch 内的均值方差滑动平均并缓存下来,用于推断阶段的预测。
总而言之,就是将 BN 应用于隐变量,就可以使得隐变量(近似地)满足相应的均值方差约束。
先给结论:
这个看上去很奇怪、实际上确实也不容易理解的结果是怎么得来的呢?事实上,它是一种重要的估计方法—— k 邻近方法——的经典例子。下面将会给出它的推导过程,该过程参考自论文《A non-parametric k-nearest neighbour entropy estimator》[4]。
注意上式描述了一个合理的概率分布,因此它的积分必然为 1。
开头就已经提到过,k 邻近方法是一种很有用的非参数估计方法,它还跟笔者之前介绍过的 IMLE 模型 [5] 有关。但笔者本身也不熟悉 k 邻近方法,还需要多多学习,目前找到的资料是《Lectures on the Nearest Neighbor Method》[6] 。
进一步思考与分析
▲ 来自EAE论文的效果图示
那 EAE 相比 VAE 的好处在哪呢?在 VAE 中,比较关键的一步是重参数(可以参考笔者的变分自编码器(一):原来是这么一回事),就是这一步降低了模型训练的方差(相比 REINFORCE 方法,可以参考笔者的《漫谈重参数:从正态分布到Gumbel Softmax》[8]),从而使得 VAE 可以有效地训练下去。
然而,虽然重参数降低了方差,但事实上方差依然不小,简单来说就是重参数这一步带来较大的噪声(尤其是训练早期),导致 decoder 无法很好地利用 encoder 的信息,典型的例子就是将 VAE 用在 NLP 时的“ KL 散度消失”现象。
但是 EAE 基本上不存在这个问题,因为 EAE 基本上就是普通的自编码器,多加的 BN 不会对自编码性能有什么影响,而多加的熵正则项原则上也只是增加隐变量的多样性,不会给编码信息的利用与重构带来明显困难。
本文介绍了一个称之为 EAE 的模型,主要是把 BN 层和最大熵塞进了普通的自编码器中,使得它具有生成模型的能力。原论文做的不少实验显示 EAE 比 VAE 效果更好,所以应该是一个值得学习和试用的模型。
点击以下标题查看更多往期内容:
#投 稿 通 道#
让你的论文被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得或技术干货。我们的目的只有一个,让知识真正流动起来。
📝 来稿标准:
• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)
• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接
• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志
📬 投稿邮箱:
• 投稿邮箱:hr@paperweekly.site
• 所有文章配图,请单独在附件中发送
• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。